package com.zhang.common;

/**
 * 消息类型枚举类
 * @author zhanghao
 */

public enum MessageType {

    /**
     * 客户端注册服务端请求
     */
    REGISTER((byte)0),

    /**
     * 客户端注册服务端响应
     */
    REGISTER_RESULT((byte)1),
    /**
     * 连接
     */
    CONNECT_REAL((byte) 2),

    /**
     * 传输
     */
    TRANSFER((byte)3),

    /**
     * 连接结果
     */
    CONNECT_REAL_REULT((byte) 4),

    /**
     * 转发真实服务器失败
     */
    TRANSFER_REAL_FAIL((byte) 5)

    /**
     * 心跳数据包
     */
    ,HEART_DATA((byte)6)
    ;

    /**
     * 枚举值
     */
    private byte val;
    MessageType(byte val) {
        this.val = val;
    }

    public byte getVal() {
        return val;
    }

    public void setVal(byte val) {
        this.val = val;
    }

    /**
     * 通过val返回MessageType
     * @param val
     * @return
     */
    public static MessageType getMessageTypeByVal(byte val){
        for(MessageType messageType:MessageType.values()){
            byte val1 = messageType.getVal();
            if(val1 == val){
                return messageType;
            }
        }
        return null;
    }
}
